Flutter PlatformView 桌面端支持现状

对于 Flutter 的 PlatformView,在桌面端的支持比移动端更加让我期待。

然而,桌面端支持现状还处于不成熟状态。在本文中,在 GPT 的帮助下,对目前桌面端现状进行梳理总结。文本总结于 2024 年 3 月 21 日。希望未来这一领域能有所突破。

Windows 平台

有关 Windows 上的 PlatformView 的讨论和努力正在进行中,特别是使用 DirectComposition。然而,根据最新的更新,由于 PlatformView 被视为一种 Hack,因此存在固有的挑战,并且不同实现之间预计没有跨平台功能对等。具体的挑战包括平台之间的组成和输入处理方面的差异。人们承认,虽然诸如灵活组合之类的事情是可能的,但严格的输入处理仍然是一个问题。由于 Flutter 项目中 PlatformView 集成和优先级的固有困难,这项工作似乎被搁置了。

概括来说:实现方案未统一,PlatformView 在桌面端优先级不高

Issue 讨论:Support PlatformViews on Windows using DirectComposition · Issue #108486 · flutter/flutter

macOS 平台

macOS 上对 PlatformView 的支持似乎也很滞后。人们明确需要能够创建支持 Native Views 的插件,从而在 Flutter 应用程序中启用 Google 地图等功能。然而,有人批评这些功能进展缓慢且缺乏优先权,影响了桌面版本稳定的能力。社区渴望这些功能,因为它们将启用视频播放器、网络视图和地图等重要功能​​。

概括来说:在插件分发上遇到困难,同样 PlatformView 在桌面端优先级不高

Issue 讨论:Implement PlatformView support on macOS · Issue #41722 · flutter/flutter

Linux 平台

在 Linux 方面,有一些迹象表明特定 PR 即将取得进展,但由于 API 整合而停止了进一步的开发。社区对 Linux 上的 PlatformView 支持仍然抱有浓厚的兴趣,尤其是在 Flutter 应用程序中集成 Web 视图。讨论表明,由于屏幕渲染存在显着的性能缺陷,平台视图可能会转向离屏渲染,但这种方法也面临着一系列挑战​​。

概括来说:实现方案未统一,PlatformView 在桌面端优先级不高

Issue 讨论:Implement PlatformView support on Linux · Issue #41724 · flutter/flutter

GPT 总结

从现有信息来看,虽然人们对在 Flutter 中启用桌面平台上的 PlatformView 支持表现出极大的兴趣并进行了一些开发工作,但似乎尚未提供完整、稳定的支持。开发和社区讨论正在进行中,但仍有一些技术挑战有待解决。如果您计划将 PlatformView 用于桌面 Flutter 应用程序,明智的做法是在 Flutter GitHub 存储库和社区论坛中跟踪这些讨论和更新,以便随时了解这些内容的进展和可用性特征。

我的看法

我最大的愿望,是 PlatformView 在桌面平台下能够嵌入 WebView,这样我能够使用 Flutter 开发跨平台浏览器。

但是,根据上述的进展,我的愿望基本上是宣告破裂了。

为此,在开发跨平台浏览器这件事情上,我未来可能会转向 Electron 以及前端生态,它们能够更好地支撑我的愿景。


本文作者:Maeiee

本文链接:Flutter PlatformView 桌面端支持现状

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!